package com.qf.service.impl;

import com.qf.dao.UserDao;
import com.qf.dao.impl.UserDaoImpl;
import com.qf.domain.Address;
import com.qf.domain.User;
import com.qf.service.UserService;
import com.qf.utils.EmailUtils;
import com.qf.utils.Md5Utils;

import java.util.List;

/*
 *                             _ooOoo_
 *                            o8888888o
 *                            88" . "88
 *                            (| -_- |)
 *                            O\  =  /O
 *                         ____/`---'\____
 *                       .'  \\|     |//  `.
 *                      /  \\|||  :  |||//  \
 *                     /  _||||| -:- |||||-  \
 *                     |   | \\\  -  /// |   |
 *                     | \_|  ''\---/''  |   |
 *                     \  .-\__  `-`  ___/-. /
 *                   ___`. .'  /--.--\  `. . __
 *                ."" '<  `.___\_<|>_/___.'  >'"".
 *               | | :  `- \`.;`\ _ /`;.`/ - ` : | |
 *               \  \ `-.   \_ __\ /__ _/   .-` /  /
 *          ======`-.____`-.___\_____/___.-`____.-'======
 *                             `=---='
 *          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 *                     佛祖保佑        永无BUG
 *            佛曰:
 *                   写字楼里写字间，写字间里程序员；
 *                   程序人员写程序，又拿程序换酒钱。
 *                   酒醒只在网上坐，酒醉还来网下眠；
 *                   酒醉酒醒日复日，网上网下年复年。
 *                   但愿老死电脑间，不愿鞠躬老板前；
 *                   奔驰宝马贵者趣，公交自行程序员。
 *                   别人笑我忒疯癫，我笑自己命太贱；
 *                   不见满街漂亮妹，哪个归得程序员？
 */
public class UserServiceImpl implements UserService {
    private UserDao userDao=new UserDaoImpl();
    @Override
    public void regist(User user) {
        //判断用户是否存在
        boolean b = userDao.select(user.getUsername());
        if(b){
            throw new RuntimeException("用户名已存在...");
        }
        //密码加密
        user.setPassword(Md5Utils.md5(user.getPassword()));
        userDao.insert(user);
        //发送邮件
        EmailUtils.sendEmail(user);


    }

    @Override
    public User login(String username, String password) {
        //加密
        password=Md5Utils.md5(password);
        User user=userDao.select(username, password);
        if(user!=null&&user.getFlag()!=1){
            throw new RuntimeException("账户已失效或未激活");
        }
        return user;
    }

    @Override
    public boolean checkUserName(String username) {
        return userDao.select(username);
    }

    @Override
    public List<Address> findAddress(Integer uid) {
        return userDao.selectAddress(uid);
    }

    @Override
    public void addAddress(Address address) {
        userDao.insertAddress(address);
    }

    @Override
    public void updateAddStatus(Integer uid,Integer aid) {
        userDao.updateAddStatus(uid,aid);
    }

    @Override
    public void updateAdd(Address address) {
        userDao.updateAdd(address);
    }

    @Override
    public void deleteAddress(int aid) {
        userDao.deleteAddress(aid);
    }
}
